La cartographie permet de visualiser la situation géographiques des observations. Dans cette partie, on va voir les différents éléments suivants
Pour apprendre à manipuler les données géographiques, vous pouvez suivre la formation spécifique sur l’utilisation des données géographiques
Dans un premier temps, on voir visualiser le nombre d’accidents au niveau des départements, cela nous donne une idée globale en France Métropolitaine.
Dans un premier temps, on va charger les contours des départements.
# les fichiers sont téléchargeables sur le site: http://professionnels.ign.fr/geofla
dep=readOGR("../data/geo_data/DEPARTEMENT/DEPARTEMENT.shp",
layer="DEPARTEMENT")
# ne pas lancer library mosaic sinon erreur sur region
dep.df=fortify(spTransform(dep, CRS("+proj=longlat +datum=WGS84")),region="CODE_DEPT")
table(dep.df$id)
# dep.idf=dep.df[dep.df$id %in% c("75","92","93","94"),]
On doit fusionner les données sur les accidents et les données qui contiennent les contours des départements.
dep.df$id=as.numeric(as.character(dep.df$id))
by.dep=caracteristiques[,.N,by=dep]
by.dep$dep=trunc(by.dep$dep/10)
dep.df2<-merge(by.dep, dep.df, by.x="dep", by.y="id")
A l’aide de ggplot2, on peut créer une carte.
x=long, y=lat.ggplot() +
geom_polygon(data = dep.df2,
aes(x = long, y = lat, group = group,fill=N),
color = "black") +
coord_map() +
scale_fill_distiller(palette = "Spectral",
breaks = pretty_breaks(n = 20), direction = -1)+
guides(fill = guide_legend(reverse = TRUE))+
theme_void()
Pour créer une carte thématique interactive, on peut utiliser le package leaflet.
leaflet en précisant l’objet SPDataFrame.Pour les options supplémentaires d’affichage:
dep.t=spTransform(dep, CRS("+proj=longlat +datum=WGS84"))
dep.t$CODE_DEPT=as.numeric(as.character(dep.t$CODE_DEPT))
dep.t = sp::merge(dep.t,by.dep,by.x="CODE_DEPT",by.y="dep")
pal <- colorQuantile("Blues", NULL, n = 13)
popupinfo <- paste0("<strong>Departement: </strong>",
dep.t$NAME," - ", dep.t$CODE_DEPT,
"<br><strong>Nombre accidents </strong>",
trunc(dep.t$N))
leaflet(data = dep.t) %>%
addTiles() %>%
addPolygons(fillColor = pal(dep.t$N),
fillOpacity=0.8,
color = "Black",
weight = 1,
stroke = TRUE,
popup=popupinfo)
Sur la carte, on peut alors
Une carte thématique permet de voir les départements de façon globale. Comme on a les points GPS des accidents, il est possible de les affiche de façon précise sur une carte.
geoloc=data.table(
annee=caracteristiques$annee,
lat=caracteristiques$lat,
long=caracteristiques$long,
dep=caracteristiques$dep)
geoloc=geoloc[is.na(lat)==FALSE,]
geoloc=geoloc[is.na(long)==FALSE,]
geoloc=geoloc[geoloc$long<1000,]
geoloc13=geoloc[geoloc$dep==130,]
lng et lat.m <- leaflet(width="100%") %>%
addTiles() %>%
addCircleMarkers(lng=geoloc13$long, lat=geoloc13$lat,radius=1)
m
Anis, on voit que les points sont précisément situés, et on peut mieux visualiser la situation géographique des accidents.
Quand on a une carte avec tous les points, certains points peuvent se superposer. Afin de mieux représenter la densité des points, on peut utiliser un heatmap.
# les options size et units permettent de régler l'affichage de heatmap lors du zoom.
leaflet(geoloc13) %>% addTiles() %>%addWebGLHeatmap(size=30,units="px")
Le heatmap se modifie lors qu’on change le niveau de zoom. Ainsi, on peut visualiser la densité du nombre d’accidents sur la carte.